package allocator

class Semestre {

	String numero
	Curso curso
	Horario horario

	static constraints = {
		numero (blank: false, matches: /\d{4}.\d{1}/, validator:{value, object->
		    def periodos = [1,2]
			def ano = Calendar.getInstance().get(Calendar.YEAR);
			Integer anoValor = value[0..3] as Integer
			Integer periodo = value[5..5] as Integer
			 
			if (anoValor > ano) {
				return  ['semestre.numero.validator.ano', (String) anoValor]
			} else if (!periodos.contains(periodo)) {
				return  ['semestre.numero.validator.periodo', (String) periodo]
			} else {
				return true
			}
		})
		curso nullable: false
		horario nullable: false
	}

	String toString() {
		numero
	}
	
}
